package com.qidianit.task.mapper;

import com.qidianit.task.pojo.Project;
import com.qidianit.task.util.pojo.QdResult;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author hitsune
 * @Company kafu chino
 * @Description
 * @Time 2024/9/5 下午 4:32
 */
public interface ProjectMapper {
    /**
     * 多条件查询全部，分页使用分页插件实现，所以没有分页参数
     * @param project
     * @return
     */
    List<Project> selectList(Project project);

    void deleteByProjectId(String projectId);

    Project selectOneByProjectId(String projectId);

    void saveProject(Project project);

//    修改状态为3(归档)
    void pigeonholeProject(String projectId);

    //批量修改状态为2(发布)
    void publishProject(List<String> projectIds);

    //批量修改状态为3(归档
    void batchPigProject(List<String> projectIds);

    //批量修改状态为99(删除
    void batchDelProject(List<String> projectIds);

    //列修改状态为1(恢复为草稿
    void recoverProject(String projectId);

    //批量恢复
    void batchRecoverProject(List<String> projectIds);

    //多条件查询已删除项目
    List<Project> selectDelList(Project project);

    Project  getProjectById(String projectId);

    //统计当前项目数量
    Long countProject();

    //统计我的项目数量
    Long countProjectByUserId(Long userId);

    //统计我的代办任务数量(用当前用户的userId得到的projectId查询底下的taskCount
    Long countMyNotOKTaskNotOK(Long userId);

    Long countMyOKTask(Long userId);

}
